#ifndef MATERIAL_H
#define MATERIAL_H

#include "GL/gl.h"

class Material {
private:
	GLfloat ambient[4];
	GLfloat diffuse[4];
	GLfloat specular[4];
	GLfloat emission[4];
	GLfloat shininess;
	bool enableAmbient;
	bool enableDiffuse;
	bool enableSpecular;
	bool enableEmission;
	bool enableShininess;

public:
	Material();
	virtual ~Material();
	void enable(int flag);
	void disable(int flag);
	void setAmbient(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
	void setDiffuse(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
	void setSpecular(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
	void setEmission(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
	void setShininess(GLfloat shininess);
	void render() const;
};

#endif // MATERIAL_H
